package snailAI.Entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 对应前端 messageList 中的单个消息项（BubbleItem）
 * 字段名、类型与前端保持完全一致，是前后端数据交互的核心
 */
@Data // 自动生成 getter/setter/toString，需 Lombok 依赖
@NoArgsConstructor // 无参构造器（JSON 反序列化必须）
@AllArgsConstructor // 全参构造器（方便后端手动创建对象）
public class ChatMessage {

    // 消息唯一键（前端为 number/string，Java 用 String 兼容所有情况）
    private String key;

    // 消息角色：ai 或 local（用枚举约束值，避免非法字符）
    private String role;

    // 消息内容（前端为 string/文件就是一个json，所以必须泛型。）
    private Object content;

    // 加载状态（前端发送中为 true，完成后为 false，后端可存储或忽略）
    private Boolean loading;

    // 时间戳（前端为 toLocaleTimeString() 结果，如 "15:30:00"，用 String 接收）
    private String timestamp;

    // 头像地址（前端为图片 URL，可为 null）
    private String avatar;

    // UI 样式变体（前端为 "borderless"/"default"，后端可存储或忽略）
    private String variant;


}